// pages/details/details.js
const app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 二维码地址（由后端返回）
    qrcodeUrl: '',
    // 内容列表（视频和图片按顺序排列）
    contentList: [],
    productVideo: [],
    productDesc: '',
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 从列表页传递过来的产品信息
    const { productId, brand, type, model } = options;
    
    console.log('详情页参数:', { productId, brand, type, model });
    
    if (productId) {
      // 根据产品ID加载对应的详情数据
      this.loadProductDetails(productId);
    } 

  },

  /**
   * 加载产品详情数据
   */
  loadProductDetails(productId) {
    // 调用接口获取产品详情
    wx.request({
      url: `${app.globalData.baseUrl}/product/${productId}`, // 替换为你的真实接口地址
      method: 'GET',
      data: { id: productId },
      success: (res) => {
        if (res.statusCode === 200 && res.data) {
          let productVideo = res.data.data.videos;
          let productDesc = this.formatRichText(res.data.data.productDesc);
          this.setData({
            contentList: res.data.contentList,
            productVideo,
            productDesc,
            qrcodeUrl: res.data.qrcodeUrl || res.data.qrcode || '' // 从后端获取二维码地址
          });
        }
      },
      fail: (err) => {
        console.error('加载产品详情失败:', err);
        wx.showToast({
          title: '加载失败',
          icon: 'none'
        });
      }
    });
    
    // 如果后端接口还未准备好，可以使用以下模拟数据
    // console.log('加载产品详情:', productId);
    // setTimeout(() => {
    //   this.setData({
    //     qrcodeUrl: 'https://via.placeholder.com/300x300' // 模拟二维码地址
    //   });
    // }, 500);
  },

  /**
   * 视频点击事件
   */
  onVideoTap(e) {
    const { url, title } = e.currentTarget.dataset;
    console.log('播放视频:', title, url);
    
    // 跳转到视频播放页，或者使用小程序视频组件
    // 方式1：使用 video 组件播放
    // 方式2：跳转到视频播放页面
    // wx.navigateTo({
    //   url: `/pages/video-player/video-player?url=${encodeURIComponent(url)}&title=${encodeURIComponent(title)}`
    // });
    
    // 方式3：直接在当前页面显示视频（需要在wxml中添加video组件）
    wx.showToast({
      title: '播放视频: ' + title,
      icon: 'none',
      duration: 2000
    });
  },

  /**
   * 图片点击事件（预览大图）
   */
  onImageTap(e) {
    const { url, index } = e.currentTarget.dataset;
    
    // 获取所有图片URL
    const images = this.data.contentList
      .filter(item => item.type === 'image')
      .map(item => item.url);
    
    // 获取当前图片在图片数组中的索引
    const currentIndex = images.findIndex(img => img === url);
    
    // 预览图片
    wx.previewImage({
      urls: images,
      current: images[currentIndex] || url
    });
  },

  /**
   * 二维码长按事件（保存图片到相册）
   */
  onQrcodeLongPress() {
    if (!this.data.qrcodeUrl) {
      return;
    }

    // 下载网络图片
    wx.showLoading({
      title: '保存中...',
      mask: true
    });

    wx.downloadFile({
      url: this.data.qrcodeUrl,
      success: (res) => {
        if (res.statusCode === 200) {
          // 保存图片到相册
          wx.saveImageToPhotosAlbum({
            filePath: res.tempFilePath,
            success: () => {
              wx.hideLoading();
              wx.showToast({
                title: '保存成功',
                icon: 'success',
                duration: 2000
              });
            },
            fail: (err) => {
              wx.hideLoading();
              if (err.errMsg.includes('auth deny')) {
                // 用户拒绝授权，引导用户开启授权
                wx.showModal({
                  title: '提示',
                  content: '需要您授权保存图片到相册',
                  confirmText: '去设置',
                  success: (modalRes) => {
                    if (modalRes.confirm) {
                      wx.openSetting();
                    }
                  }
                });
              } else {
                wx.showToast({
                  title: '保存失败',
                  icon: 'none'
                });
              }
            }
          });
        } else {
          wx.hideLoading();
          wx.showToast({
            title: '下载失败',
            icon: 'none'
          });
        }
      },
      fail: (err) => {
        wx.hideLoading();
        console.error('下载二维码失败:', err);
        wx.showToast({
          title: '下载失败',
          icon: 'none'
        });
      }
    });
  },

  /**
   * 二维码点击事件（也可以预览）
   */
  onQrcodeTap() {
    if (!this.data.qrcodeUrl) {
      return;
    }
    
    // 预览二维码大图
    wx.previewImage({
      urls: [this.data.qrcodeUrl],
      current: this.data.qrcodeUrl
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  /**
   * 处理富文本，限制图片宽度
   */
  formatRichText(html) {
    if (!html) {
      return '';
    }
    return html.replace(/<img[^>]*>/gi, (match) => {
      if (match.includes('style=')) {
        return match.replace(/style=['"]([^'"]*)['"]/, (styleMatch, styleContent) => {
          const extraStyle = 'max-width:100%;height:auto;display:block;';
          if (styleContent.includes('max-width')) {
            return `style='${styleContent};height:auto;display:block;'`;
          }
          return `style='${extraStyle}${styleContent}'`;
        });
      }
      return match.replace('<img', '<img style="max-width:100%;height:auto;display:block;"');
    });
  }
})
